<?php
class Jabber
{
	public static function crearCuenta($usuario,$pass,$nombre,$email,$grupo)
	{
		$nombre = str_replace(" ","%20",$nombre);
		if(function_exists('curl_init')) // Comprobamos si hay soporte para cURL
		{
			if($usuario != "admin")
			{
				$fp = tmpfile();
				
				$url="http://wixet.com:9090/plugins/userService/userservice?type=add&secret=29gatitos&username=".$usuario."&password=".$pass."&name=".$nombre."&email=".$email."&groups=".$grupo;
				$ch = curl_init();
				curl_setopt ($ch, CURLOPT_STDERR, $fp);
				curl_setopt($ch, CURLOPT_URL,$url);
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
				$resultado = curl_exec ($ch);
				curl_close($ch);
				return $resultado;
			}
		}else{
			echo "No se encuentra CURL";
		}
	}
	
	public static function borrarCuenta($usuario)
	{
		if(function_exists('curl_init')) // Comprobamos si hay soporte para cURL
		{
			$url="http://wixet.com:9090/plugins/userService/userservice?type=delete&secret=29gatitos&username=".$usuario;
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL,$url);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			$resultado = curl_exec ($ch);
			curl_close($ch);
			return $resultado;
		}else{
			echo "No se encuentra CURL";
		}
	}
	
	public static function actualizarCuenta($usuario,$pass,$nombre,$email,$grupo)
	{
		$nombre = str_replace(" ","%20",$nombre);
		if(function_exists('curl_init')) // Comprobamos si hay soporte para cURL
		{
			$url="http://wixet.com:9090/plugins/userService/userservice?type=update&secret=29gatitos&username=".$usuario."&password=".$pass;
			
			//&name=".$nombre."&email=".$email."&groups=".$group;
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL,$url);
			$resultado = curl_exec ($ch);
			curl_close($ch);
			return $resultado[0];
		}else{
			echo "No se encuentra CURL";
		}
	}
	
	public static function borrarContactos($usuario,$contacto)
	{
		Jabber::borrarContacto($usuario,$contacto);
		Jabber::borrarContacto($contacto,$usuario);		
	}
	
	public static function borrarContacto($usuario,$contacto)
	{
		$contacto = $contacto."@wixet.com";
		$admin = "admin";
		$adminPass = "29gatitos";

		//$nickname ="Test";
		//$group = "Wixet";
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL,
			"http://wixet.com:9090/login.jsp");
			
		curl_setopt ($ch, CURLOPT_COOKIESESSION, true);
		
		curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookiefile.txt');
		curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookiefile.txt'); 
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt ($ch, CURLOPT_POST, 1); 
		curl_setopt ($ch, CURLOPT_POSTFIELDS, "url=index.jsp&login=true&username=".$admin."&password=".$adminPass); 
		
		$resultado = curl_exec ($ch);
		//Estamos logeados
		//print_r($resultado);
		//Vamos a borrarlo
		/*curl_setopt($ch, CURLOPT_URL,"http://wixet.com:9090/user-roster-delete.jsp?username=".$usuario."&jid=".$contacto);
		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
		$resultado = curl_exec ($ch);*/
		//print_r($resultado);


		//Confirmamos
		$tmp = split("@",$contacto);
		$contactoUser = $tmp[0];
		$contactoDomain = $tmp[1];
		curl_setopt($ch, CURLOPT_URL,
			"http://wixet.com:9090/user-roster-delete.jsp?username=".$usuario."&jid=".$contacto."&delete=Borrar+Contacto");
		$resultado = curl_exec ($ch);
		//print_r($resultado);
		
		curl_close($ch);
	}
	public static function hacerContactos($usuario,$contacto,$nickUsuario,$nickContacto)
	{
		Jabber::hacerContacto($usuario,$contacto,$nickContacto);
		Jabber::hacerContacto($contacto,$usuario,$nickUsuario);
	}
	
	private static function hacerContacto($usuario,$contacto,$nickname)
	{
		//$usuario = "maxpowel";
		$nickname = str_replace(" ","%20",trim($nickname));
		$contacto = $contacto."@wixet.com";
		$admin = "admin";
		$adminPass = "29gatitos";
		$group = "Wixet";

		//$nickname ="Test";
		//$group = "Wixet";
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL,
			"http://wixet.com:9090/login.jsp");
			
		curl_setopt ($ch, CURLOPT_COOKIESESSION, true);
		
		curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookiefile.txt');
		curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookiefile.txt'); 
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);	 
		curl_setopt ($ch, CURLOPT_POST, 1); 
		curl_setopt ($ch, CURLOPT_POSTFIELDS, "url=index.jsp&login=true&username=".$admin."&password=".$adminPass); 

		$resultado = curl_exec ($ch);
		//Estamos logeados
		print_r($resultado);
		//Insertamos el contacto al usuario
		curl_setopt($ch, CURLOPT_URL,"http://wixet.com:9090/user-roster-add.jsp?username=".$usuario."&jid=".$contacto."&nickname=".$nickname."&add=Agregar+Contacto");
		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
		$resultado = curl_exec ($ch);
		//print_r($resultado);
		//Usuario añadido como contacto
		
		//Ahora hacemos la subscripcion
		$tmp = split("@",$contacto);
		$contactoUser = $tmp[0];
		$contactoDomain = $tmp[1];
		curl_setopt($ch, CURLOPT_URL,
			"http://wixet.com:9090/user-roster-edit.jsp?username=".$usuario."&jid=".$contactoUser."%40".$contactoDomain."&save=true&groups=".$group."&sub=3&nickname=".$nickname);
		$resultado = curl_exec ($ch);
		//print_r($resultado);
		
		//Ahora insertamos el contacto al otro usuario (las subcripciones son reciprocas)
		curl_close($ch);
	}
	
	public static function cerrarSesion($jid)
	{
		$admin = "admin";
		$adminPass = "29gatitos";
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL,
			"http://wixet.com:9090/login.jsp");
			
		curl_setopt ($ch, CURLOPT_COOKIESESSION, true);
		
		curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookiefile.txt');
		curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookiefile.txt'); 
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt ($ch, CURLOPT_POST, 1); 
		curl_setopt ($ch, CURLOPT_POSTFIELDS, "url=index.jsp&login=true&username=".$admin."&password=".$adminPass); 
		
		$resultado = curl_exec ($ch);
		//Estamos logeados
		//Cerramos sesion
		curl_setopt($ch, CURLOPT_URL,"http://www.wixet.com:9090/session-summary.jsp?jid=".$jid."%2FWixet&close=true");
		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
		$resultado = curl_exec ($ch);
		
		curl_close($ch);
	}

}
